<script setup name="Pay">
    import { getOrderAPI } from "@/apis/pay";
    import { useRoute, useRouter } from "vue-router";
    import { onMounted, ref, watch } from "vue";
    // import { ElMessageBox } from 'element-plus'

    const payInfo = ref({}) // 订单信息
    const route = useRoute() // 路由
    const router = useRouter() // 路由
    const minute = ref(30) // 分钟数
    const second = ref(0) // 秒数

    watch(() => {
        if (payInfo.value.countdown <= 0) return true
    }, (newVal) => {
        if (newVal) {
            ElMessageBox.alert('订单已超时，请重新下单', '超时确认', {
                confirmButtonText: 'OK',
                callback: () => {
                    router.push({ path: '/home' })
                }
            })
        }
    }) // 倒计时结束提示

    const getPayInfo = async () => {
        console.log(route.query)
        const { result } = await getOrderAPI(route.query.id) // 获取订单信息
        payInfo.value = result // 赋值给payInfo
        payInfo.value.countdown -= 1 // 倒计时减一秒
        startCountDown() // 开始倒计时
    }

    const startCountDown = () => {
        if (payInfo.value.countdown > 0) {
            setInterval(() => {
                minute.value = Math.floor(payInfo.value.countdown / 60) // 取整分钟数
                second.value = payInfo.value.countdown % 60 // 取余秒数
                payInfo.value.countdown -= 1 // 倒计时减一秒
            }, 1000); // 每秒钟更新一次倒计时
        } else {
            minute.value = 0
            second.value = 0 // 倒计时结束
        }
    } // 开始倒计时

    onMounted(() => {
        getPayInfo() // 获取订单信息
    })

    // 支付地址
    const baseURL = 'http://pcapi-xiaotuxian-front-devtest.itheima.net/'
    const backURL = 'http://127.0.0.1:5173/paycallback'
    const redirectUrl = encodeURIComponent(backURL)
    const payUrl = `${baseURL}pay/aliPay?orderId=${route.query.id}&redirect=${redirectUrl}`

</script>


<template>
    <div class="xtx-pay-page">
        <div class="container">
            <!-- 付款信息 -->
            <div class="pay-info">
                <span class="icon iconfont icon-queren2"></span>
                <div class="tip">
                    <p>订单提交成功！请尽快完成支付。</p>
                    <p>支付还剩 <span>{{ minute }}分{{ second < 10 ? '0' + second : second }}秒</span>, 超时后将取消订单</p>
                </div>
                <div class="amount">
                    <span>应付总额：</span>
                    <span>¥{{ payInfo.payMoney?.toFixed(2) }}</span>
                </div>
            </div>
            <!-- 付款方式 -->
            <div class="pay-type">
                <p class="head">选择以下支付方式付款</p>
                <div class="item">
                    <p>支付平台</p>
                    <a class="btn wx" href="javascript:;"></a>
                    <a class="btn alipay" :href="payUrl"></a>
                </div>
                <div class="item">
                    <p>支付方式</p>
                    <a class="btn" href="javascript:;">招商银行</a>
                    <a class="btn" href="javascript:;">工商银行</a>
                    <a class="btn" href="javascript:;">建设银行</a>
                    <a class="btn" href="javascript:;">农业银行</a>
                    <a class="btn" href="javascript:;">交通银行</a>
                </div>
            </div>
        </div>
    </div>

</template>

<style scoped lang="scss">
    .xtx-pay-page {
        margin-top: 20px;
    }

    .pay-info {

        background: #fff;
        display: flex;
        align-items: center;
        height: 240px;
        padding: 0 80px;

        .icon {
            font-size: 80px;
            color: #1dc779;
        }

        .tip {
            padding-left: 10px;
            flex: 1;

            p {
                &:first-child {
                    font-size: 20px;
                    margin-bottom: 5px;
                }

                &:last-child {
                    color: #999;
                    font-size: 16px;
                }
            }
        }

        .amount {
            span {
                &:first-child {
                    font-size: 16px;
                    color: #999;
                }

                &:last-child {
                    color: $priceColor;
                    font-size: 20px;
                }
            }
        }
    }

    .pay-type {
        margin-top: 20px;
        background-color: #fff;
        padding-bottom: 70px;

        p {
            line-height: 70px;
            height: 70px;
            padding-left: 30px;
            font-size: 16px;

            &.head {
                border-bottom: 1px solid #f5f5f5;
            }
        }

        .btn {
            width: 150px;
            height: 50px;
            border: 1px solid #e4e4e4;
            text-align: center;
            line-height: 48px;
            margin-left: 30px;
            color: #666666;
            display: inline-block;

            &.active,
            &:hover {
                border-color: $xtxColor;
            }

            &.alipay {
                background: url(https://cdn.cnbj1.fds.api.mi-img.com/mi-mall/7b6b02396368c9314528c0bbd85a2e06.png) no-repeat center / contain;
            }

            &.wx {
                background: url(https://cdn.cnbj1.fds.api.mi-img.com/mi-mall/c66f98cff8649bd5ba722c2e8067c6ca.jpg) no-repeat center / contain;
            }
        }
    }
</style>